#================================================
# 永続化レイヤ：予算項目
#================================================
require 'rubygems'
require 'dm-core'

class Budget
  include DataMapper::Resource
  
  #==== データ構造設定
  property :id, Integer, :serial=>true  # 一意の登録ID
  property :userId, Integer             # 登録ユーザ識別子
  property :name, String                # 予算項目名
  property :value, Integer              # 予算金額
  property :year, Integer               # 年
  property :month, Integer              # 月
  
  # 指定したユーザの、指定した年・月に対応する予算項目一覧を返す。該当するデータがなければ空リストを返す。
  # @param {int} userId 取得対象ユーザ識別子。非null。
  # @param {int} year 取得対象年。非null。
  # @param {int} month 取得対象月。非null。
  # @return {Budget[]} 取得したリスト。非null。
  def Budget.getList(userId, year, month)
    return Budget.all(:order =>[:id.asc] , :userId => userId, :year => year, :month => month)
  end
  
  # 新しい予算項目を追加する。
  # @param {int} userId 項目を追加するユーザの識別子
  # @param {int} year 追加先の年。
  # @param {int} month 追加先の月。
  # @param {String} name 追加する項目の表示名。非null。非空文字列。
  # @param {int} value 追加する項目の予算金額。
  def Budget.add(userId, year, month, name, value)
    item = Budget.new()
    item.attributes = {:userId => userId, :year => year, :month => month, :name=> name, :value=>value}
    item.save()
  end
  
  # 指定した予算項目を削除する
  # @param {int} id 削除対象項目の識別子。対応するデータがなければ何もしない。
  def Budget.remove(id)
    budget = Budget.get(id)
    budget.destloy()
  end
end
